package pro.cherish.knowledgedemothymeleaf.core;

import org.thymeleaf.context.Context;
import org.thymeleaf.dialect.IDialect;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.dialect.SpringStandardDialect;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.StringTemplateResolver;

import java.util.Map;

/**
 * @author 创建人：cherish
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2020-02-07 cherish 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：RenderUtill
 * @Description 功能说明：
 * <p>
 * TODO
 * </p>
 * **********************************************************************
 * @date 创建日期： 2020-02-07 cherish
 */
public class RenderUtill {

    /**
    * @Description: 使用thymeleaf渲染模板内容
    * @Param: [content, jsonMap] 模板内容
    * @return: java.lang.String 模板变量
    * @Author: lys
    * @Date: 2020-2-7
    */
    public static String thymeleafRendering(String content, Map<String, Object> jsonMap) {
        // 构造模板引擎
        SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
        IDialect springStandarDialect = new SpringStandardDialect();
        springTemplateEngine.setDialect(springStandarDialect);
        StringTemplateResolver stringTemplateResolver = new StringTemplateResolver();
        stringTemplateResolver.setCacheable(true);
        stringTemplateResolver.setTemplateMode(TemplateMode.HTML);
        springTemplateEngine.setTemplateResolver(stringTemplateResolver);
        // 构造上下文(Model)
        Context context = new Context();
        context.setVariables(jsonMap);
        // 渲染模板
        return springTemplateEngine.process(content, context);
    }

}
